package com.example.recyclerviewdemo.utils

import android.text.TextUtils
import com.blankj.utilcode.util.TimeUtils
import java.text.SimpleDateFormat
import java.util.*

object TimeUtils {

    //一分钟毫秒数
    const val minute = 1000 * 60

    //一小时
    const val houre = minute * 60

    //一天
    const val day = houre * 24


    /**
     *  获取聊天列表需要的时间格式
     *  定制版，for聊天列表
     * 输入时间毫秒数
     * 转换为定制字符串
     * 1 与当前时间在同一天内 ，  显示 16:00  格式
     * 2 不在同一天，在同一个星期 显示 星期二  格式
     * 3 超过一个星期了          显示 2021-12-25 格式
     * */
    fun getChatListTime(millisecond: Long): String{
        val l = System.currentTimeMillis() - millisecond
        when {
            TimeUtils.isToday(millisecond) ->{
                return hhmm(millisecond)
            }
            //一周内
            l < (7 * day) -> {
                val weekDayString = getWeekDayString(millisecond)
                if (!TextUtils.isEmpty(weekDayString)) {
                    return weekDayString
                }
            }
        }
        return yyyyMMdd(millisecond)
    }

    // 12:30
    fun hhmm(millisecond: Long): String {
        return SimpleDateFormat("HH:mm", Locale.getDefault()).format(millisecond)
    }

    //2020-12-25
    fun yyyyMMdd(millisecond: Long): String {
        return SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(millisecond)
    }

    fun getWeekDayString(millisecond: Long): String {
        val date = Date(millisecond)
        val calendar = Calendar.getInstance()
        calendar.time = date
        return when (calendar.get(Calendar.DAY_OF_WEEK)) {
            1 -> "星期日"
            2 -> "星期一"
            3 -> "星期二"
            4 -> "星期三"
            5 -> "星期四"
            6 -> "星期五"
            7 -> "星期六"
            else -> {
                return ""
            }
        }
    }


}